Programmable integrated circuits are a type of integrated circuit that can be configured by a user to implement custom logic functions. In a typical scenario, a logic designer uses computer-aided design (CAD) tools to design a custom logic circuit. When the design process is complete, the CAD tools generate configuration data. The configuration data is loaded into a programmable integrated circuit to configure the device to perform desired logic functions.
In a typical system, a programmable integrated circuit can be used to communicate with system memory. This type of programmable integrated circuit often includes a memory controller that serves as an interface between the programmable integrated circuit and system memory. The programmable integrated circuit also includes modules configured to access system memory by sending memory access requests to the memory controller (e.g., the memory controller includes multiple ports each of which receives memory access requests from a respective module within the programmable integrated circuit).
Each port of the memory controller is assigned a corresponding priority value. The memory controller uses the port priority values to determine the order in which to execute the memory access requests received from the different modules (i.e., to determine which memory access requests are prioritized over other memory access requests). The port priority values of conventional memory controllers in programmable integrated circuits are assigned with predetermined port priority values that cannot be modified while the memory controller is receiving and fulfilling memory access requests.